The Internet Protocol (IP) is the communication protocol used throughout the Internet for directing data packets. All data packet traffic needs to have IP address information for the routers to steer it to the correct destination. Multi-Protocol Label Switching (MPLS) is an alternate scheme to control the forwarding—with labels determining how a packet is forwarded. IP and MPLS are often used in a complementary manner, e.g., to deliver virtual private network services, traffic engineering, etc. Routers on the incoming edge of the MPLS network add information (i.e., an MPLS “label”) about a specific path the packet is taking en route to its destination to the top of each packet. This label is based on some criteria (e.g., destination IP address) and is then used to steer the packet through the subsequent routers. An MPLS network thus obviates the need for each router to look up the IP address of the next node in the path.
Service Providers (SPs) are increasingly deploying MPLS in their access and aggregation networks. Many SPs also want to offer wholesale services, including multicast services such as broadcast TV at Layer 2 over MPLS. A multicast wholesale service at Layer 2 usually requires the SP to transport multicast traffic from a few sources (“Servers”) to many receivers (“Clients”). In this scenario, Servers need to be able to communicate with each other and with all Clients. Clients should also be able to communicate with the sources (e.g. to request a new multicast channel). But Clients should not be able to communicate with each other to avoid security issues. Unfortunately, achieving this result in an efficient transport mechanism without scaling problems, and which does not require manual configuration of distribution trees, has been difficult.
In one embodiment, a method comprises sending upstream to a nearest neighbor node, by a Client Label Switched Router (LSR), a downstream label map message of a Server-Forwarding Equivalence Class type (S-FEC-DOWN). In response, a downstream forwarding state from the nearest neighbor node to the Client LSR is established. Responsive to receiving an upstream label map message of a Client-Forwarding Equivalence Class type (C-FEC UP) from the nearest neighbor node, the Client LSR establishes an upstream forwarding state corresponding to the C-FEC UP.
In another embodiment, a method comprises sending upstream to a nearest neighbor node, by a Server Label Switched Router (LSR), a downstream label map message of a Client-Forwarding Equivalence Class type (C-FEC DOWN). In response, a downstream forwarding state from the nearest neighbor node to the Server LSR is established by the nearest neighbor node. Responsive to receiving an upstream label map message of a Server-Forwarding Equivalence Class type (S-FEC UP) from the nearest neighbor node, the Server LSR establishes an upstream forwarding state corresponding to the S-FEC UP.
In yet another embodiment, a method comprises sending an upstream label map message of a Server-Forwarding Equivalence Class type (S-FEC UP) to a Server responsive to receiving a downstream label map message of a Client-Forwarding Equivalence Class type (C-FEC DOWN) from the Server. Responsive to receiving a downstream label map message of a Server-Forwarding Equivalence Class type (S-FEC DOWN) from a Client, an upstream label map message of a Client-Forwarding Equivalence Class type (C-FEC UP) is set to the Client.
In still another embodiment, an apparatus comprises an interface that connects to a nearest neighbor node via an upstream path of a Multi-Protocol Label Switching (MPLS) network. The apparatus further comprises a means for sending upstream to the nearest neighbor node via the interface, a downstream label map message of a Client-Forwarding Equivalence Class type (C-FEC-DOWN), responsive thereto, a downstream forwarding state from the nearest neighbor node to the apparatus being established. The means being further for receiving an upstream label map message of a Server-Forwarding Equivalence Class type (S-FEC UP) from the nearest neighbor node via the interface, and for establishing an upstream forwarding state from the apparatus to the nearest neighbor node, the upstream forwarding state corresponding to the S-FEC UP.
In yet another embodiment, an apparatus comprises one or more processors and a memory comprising one or more instructions executable at the processors. The one or more processors are operable, when executing the instructions, to receive a downstream label map message of a Client-Forwarding Equivalence Class type (C-FEC DOWN) from a Server LSR of a Multi-Protocol Label Switching (MPLS) network, and send an upstream label map message of a Server-Forwarding Equivalence Class type (S-FEC UP) to the Server responsive to the C-FEC DOWN. The processors being further operable, when executing the instructions, to receive a downstream label map message of a Server-Forwarding Equivalence Class type (S-FEC DOWN) from a Client LSR of the MPLS network, and send an upstream label map message of a Client-Forwarding Equivalence Class type (C-FEC UP) to the Client responsive to the S-FEC DOWN.
In still another embodiment, a method comprises automatically constructing a Half-Duplex Multipoint Distribution Tree (HD-MDT) for transport of video packets from a plurality of servers of a broadcast content provider to a plurality of Digital Subscriber Line Access Multiplexers (DSLAMs) such that each of the servers are operable to forward video packets to all of the DSLAMs and to other ones of the servers, and each of the DSLAMs are operable to forward data packets to the servers, but none of the DSLAMs are operable to forward data packets to any other one of the DSLAMs. The constructing includes receiving, by a node of the HD-MDT, a downstream label map message of a Client-Forwarding Equivalence Class type (C-FEC DOWN) from a first one of the servers. The constructing further includes sending, by the node, an upstream label map message of a Server-Forwarding Equivalence Class type (S-FEC UP) to the first one of the servers responsive to the C-FEC DOWN.